import sys

def max_repeated_substrings(s):
    n = len(s)
    # 从最大的可能截数开始检查（从n到1）
    for i in range(n, 0, -1):
        # 检查长度是否能被i整除
        if n % i == 0:
            # 计算子串长度
            sub_len = n // i
            # 获取第一个子串
            first_sub = s[:sub_len]
            # 检查所有子串是否相同
            all_same = True
            for j in range(1, i):
                if s[j*sub_len : (j+1)*sub_len] != first_sub:
                    all_same = False
                    break
            # 如果所有子串都相同，返回截数i
            if all_same:
                return i
    # 最坏情况返回1
    return 1

def main():
    # 读取输入字符串
    s = sys.stdin.readline().strip()
    # 计算并输出结果
    result = max_repeated_substrings(s)
    print(result)

if __name__ == "__main__":
    main()